// 定义函数,调用函数返回action对象
// 返回action对象的函数,一般都被称之为actionCreator. 同步action
import { ADD, SUB, MUL } from './constants'
export function addAc(num) {
  return { type: ADD, num }
}

export function subAc(num) {
  return { type: SUB, num }
}
export function mulAc(num) {
  return { type: MUL, num }
}

// 为了配合redux-thunk,我们需要在actions.js中定义一个所谓的异步action
export function mulAcAsync(num) {
  return (dispatch) => {
    // 执行异步操作
    // 注意: 假如项目中有两个中间件,这个中间件执行完毕之后,要调用dispatch.而这个dispatch不会触发reducer,而是触发下一个中间件
    // 如果项目中只有thunk这一个中间件, 这个函数执行异步操作之后,调用dispatch,这个dispatch就是store.dispatch,指向会触发reducer
    // dispatch
    setTimeout(() => {
      dispatch(mulAc(num))
    }, 1000)
  }
}
